[% setvar title The Perl 6 Summary for the week ending 2005-04-12 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 2005-04-12'></a><h1>The Perl 6 Summary for the week ending 2005-04-12</h1>
<p>Whoa! Deja vu! Where'd Matt go?</p>
<p>Don't worry, Matt's still writing summaries. As you may have noticed, Matt's
been writing summaries every two weeks. And now so am I. Because we love you,
we've decided to arrange things so I write summaries in the weeks when Matt
doesn't. We could do it the other way, but that could be seen by some as
self-defeating. Heck, when I say 'some' I probably mean 'all'.</p>
<p>So, bear with me while I remember how to type all those accented characters and
get back into the swing of writing these things (and of reading everything in
the mailing lists once more -- someone should write a summary for us
summarizers...)</p>
<p>I'll be sticking to my old 'lists in alphabetical order' scheme of writing
summaries. So, let's get going</p>
<a name='This week in perl6-compiler'></a><h1>This week in perl6-compiler</h1>
<a name='Array of arrays, hash of hashes, elems, last'></a><h2>Array of arrays, hash of hashes, elems, last</h2>
<p>Lev Selector asked for confirmation that Pugs didn't support compound data
structures, <code>@ar.elems</code> or <code>@ar.last</code>. Autrijus and others confirmed that
they didn't then, but they do now.</p>
<p><a href='http://groups.google.com/groups?threadm=6.2.0.14.2.20050405083226.02fbc8a8@pop.pipeline.com' target='_blank'>groups.google.com</a></p>
<a name='MakeMaker6 stalls on takeoff'></a><h2>MakeMaker6 stalls on takeoff</h2>
<p>Darren Duncan pointed out that, whilst last week's summary had claimed he was
working on implementing MakeMaker in Perl 6 which is, sadly not the case. He
reckoned he'd possibly look into it again when he had tuits and Pugs was more
complete (supporting objects, for instance).</p>
<p><a href='http://groups.google.com/groups?threadm=p06210202be7926b05de8@' target='_blank'>groups.google.com</a>[192.168.1.102]</p>
<a name='Declaration oddness'></a><h2>Declaration oddness</h2>
<p>Roie Marianer pointed out what looks like some weirdness in Pugs' parsing of
lexically scoped subroutines. Warnock applies.</p>
<p><a href='http://groups.google.com/groups?threadm=200504072344.18631.roiem@actcom.co.il' target='_blank'>groups.google.com</a></p>
<a name='Toronto pugs hackathon'></a><h2>Toronto pugs hackathon</h2>
<p>John Macdonald asked for people who wanted to come to the YAPC::NA pugs
hackathon to get in touch with him beforehand as spaces there are limited. If
you're interested, drop him a line.</p>
<p><a href='http://groups.google.com/groups?threadm=20050407174040.GA26479@lupus.perlwolf.com' target='_blank'>groups.google.com</a></p>
<a name='Pugs slice oddities'></a><h2>Pugs slice oddities</h2>
<p>Andrew Savige noticed some weirdness in pugs's slicing behaviour. He posted
some example code showing the problem. Autrijus agreed that there was a problem
and explained that he was in the process of rewriting all the variable types,
symbol tables and casting rules to agree with the Perl 5 model as described in
<b><i>perltie.pod</i></b>. The rewrite is currently failing tests, so he posted a patch
for people who want to play. On Sunday, he bit the bullet and committed the
entire 2500 line patch which 'touches pretty much all evaluator code'.</p>
<p><a href='http://autrijus.org/tmp/itype.patch' target='_blank'>autrijus.org</a> -- Autrijus's patch</p>
<p><a href='http://use.perl.org/~autrijus/journal' target='_blank'>use.perl.org</a> -- Autrijus on the patch</p>
<p><a href='http://groups.google.com/groups?threadm=20050409104859.63926.qmail@web50803.mail.yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-internals'></a><h1>Meanwhile, in perl6-internals</h1>
<a name='Tcl, Unicode'></a><h2>Tcl, Unicode</h2>
<p>William Coleda has been trying to add Unicode support to his TCL implementation
and he fell across issues with missing methods in <b><i>charset/unicode.h</i></b>. Leo
waved a magic wand and checked in an implementation which he fenced about with
disclaimers.</p>
<p><a href='http://groups.google.com/groups?threadm=42534227.7000005@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='The status of Ponie'></a><h2>The status of Ponie</h2>
<p>Nicholas Clark confessed that Ponie had been pretty much stalled for some time,
but sweetened the pill by announcing that it's about to restart and that he
would be able to allocate at least one day a week to the project. He pointed
people at the Ponie roadmap which breaks down the required tasks between here
and a first release, complete with time estimates. If you're interested in
getting Ponie to a ridable state, this would be a good place to start.</p>
<p>People were pleased.</p>
<p><a href='http://opensource.fotango.com/software/ponie/plan' target='_blank'>opensource.fotango.com</a> -- Ponie intro/roadmap</p>
<p><a href='http://groups.google.com/groups?threadm=cdcef3714478b9d9e45d6571b17ce460@fotango.com' target='_blank'>groups.google.com</a></p>
<a name='Monthly release schedule'></a><h2>Monthly release schedule</h2>
<p>Chip donned his &quot;Fearless Leader&quot; hat and announced that, effective, Parrot
would be moving to a monthly release schedule (with an initial three week
'month' to get things into sync). There was some debate about whether
Solaris/SPARC should be one of the officially required monthly release
platforms (darwin, linux-x86-gcc3.* and win32-ms-cl were Chip's initial blessed
three). This morphed into a discussion of Tinderbox; apparently there are cool
things happening behind the scenes.</p>
<p><a href='http://groups.google.com/groups?threadm=20050406222449.GS12946@perlsupport.com' target='_blank'>groups.google.com</a></p>
<a name='Calling convention abstraction'></a><h2>Calling convention abstraction</h2>
<p>What do you know? You go away for n months and when you come back people are
<i>still</i> talking about calling conventions.</p>
<p><a href='http://groups.google.com/groups?threadm=20050407082131.24711.qmail@lists.develooper.com' target='_blank'>groups.google.com</a></p>
<a name='Dynamic Perl, Part 1'></a><h2>Dynamic Perl, Part 1</h2>
<p>William Coleda announced that he was starting work on removing the core's
dependence on Perl* PMCs in favour of using language agnostic PMCs internally
and loading the Perl ones dynamically as required. Everything but PerlArray was
dealt with quickly and names and ways forward with that tricky case were
discussed. It looks like we're going to have a 'ResizablePMCArray' added to the
core once people have the tuits.</p>
<p><a href='http://groups.google.com/groups?threadm=4255FC12.7060907@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='Subversion'></a><h2>Subversion</h2>
<p>Another discussion that wouldn't go away back when I was last writing summaries
has come to a head. Parrot's finally migrating from CVS to Subversion. By the
time you read this, Parrot's main repository should be at
<a href='http://svn.perl.org/parrot.' target='_blank'>svn.perl.org</a> Hurrah!</p>
<p>There were, of course, wrinkles to be ironed out.</p>
<p><a href='http://www.parrotcode.org/source.html' target='_blank'>www.parrotcode.org</a> -- Getting started with subverted Parrot</p>
<p><a href='http://groups.google.com/groups?threadm=m3oecqrlm4.wl_rs@pobox.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=m34qeeqzzm.wl_rs@pobox.com' target='_blank'>groups.google.com</a></p>
<a name='The imcc/ subdirectory'></a><h2>The imcc/ subdirectory</h2>
<p>Matt Diephouse wondered if, now that IMCC has been integrated with Parrot, we
really needed the imcc/ subdirectory. He suggested that maybe its contents
should be distributed about the rest of the parrot directory
structure. MrJoltCola (Melvin Smith?) thought it was best kept separate and
thought of as a front end. Bernhard Schmalhofer pointed out PAST, another
Parrot frontend and suggested that it may make sense to refactor imcc/main.c
into (he suggests) src/main.c and imcc/frontend.c, which would make the
distinction rather clearer and provide an opportunity to clean up the exported
symbols. Leo pretty much agreed with Melvin (no comment on Bernhard's
suggestions yet though).</p>
<p><a href='http://groups.google.com/groups?threadm=198c873805041115575359f54c@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Perl jobs for the willing'></a><h2>Perl jobs for the willing</h2>
<p>Leo looked for volunteers to rejig t/src/manifest.t to use .svn/Entries instead
of CVS/Entries when checking the MANIFEST. Michael Schwern (possibly
accidentally) volunteered.</p>
<p><a href='http://groups.google.com/groups?threadm=425B900E.6050409@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<p>A quick note about notation. I've started borrowing notation from Ruby/Smalltalk
to discuss methods. Where I write SomeClass#method, then I am referring to an
instance method of SomeClass and where I write SomeClass.method I am referring
to a class method.</p>
<a name='Identity tests and comparing two references'></a><h2>Identity tests and comparing two references</h2>
<p>By heck but I've not been keeping up.</p>
<p>I started understanding what was going on when people started talking about
implicit dereferencing of long chains of references. Larry's saying that even
if $foo is a reference to a reference to a reference to a... to &quot;10&quot; then $$foo
will chase all the way along the reference chain and evaluate to &quot;10&quot;. The
general response seemed to be &quot;Wah! How do I make it not do that?&quot;.</p>
<p><a href='http://groups.google.com/groups?threadm=20050406183035.GB20211@wall.org' target='_blank'>groups.google.com</a> -- how to help Larry</p>
<p><a href='http://groups.google.com/groups?threadm=42517043.1080204@orthogon.com' target='_blank'>groups.google.com</a></p>
<a name='say what?'></a><h2><code>say</code> what?</h2>
<p>Ovid wondered if <code>say</code> (and <code>print</code> come to that) should default to printing
the current topic. An initial hunt through the Perl 6 documents proved to be
'like trying to sip through a firehose', so he asked the list. And dropped a
heavy hint about indexing the docs.</p>
<p>According to Luke, it should default to the current topic.</p>
<p><a href='http://groups.google.com/groups?threadm=20050408060706.8683.qmail@web60801.mail.yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='Blocks, continuations and eval()'></a><h2>Blocks, continuations and eval()</h2>
<p>Wolverian's been looking at the Perl 5 debugger and wondered if it would be
possible to add an eval method to objects that represent scopes. The idea being
that</p>
<pre>   $scope.eval 'say $foo'</pre>
<p>would evaluate <code>say $foo</code> with all of <code>$scope</code>'s bindings etc in place (I
wonder what <code>$scope.eval 'return'</code> would do...). At least, that's what <i>I</i>
think he meant. Others asked for clarification. Wolverian also wanted to know
how to get hold of a scope's continuation (or at least the current
continuation). Larry has in the past said that he wouldn't be exposing
continuations in the core language. Others have noted that it wouldn't be
beyond the bounds of possibility to write a Parrot level module which would
expose them though.</p>
<p><a href='http://groups.google.com/groups?threadm=20050408140311.GD21475@sci.fi' target='_blank'>groups.google.com</a></p>
<a name='Questions on $pair.kv'></a><h2>Questions on <code>$pair.kv</code></h2>
<p>Stevan Little had some questions about the behaviour of Pair#kv
method. Luke came through with the answer (when all else fails, consider the
pair to be a one-element hash'.</p>
<p><a href='http://groups.google.com/groups?threadm=f773baa01367af7f6305d2d9624ae684@iinteractive.com' target='_blank'>groups.google.com</a></p>
<a name='Managing PLEAC'></a><h2>Managing PLEAC</h2>
<p>Prompted by a suggestion from Tim Bunce, Ovid started porting the examples in
the Perl Cookbook into idiomatic Perl 6. He asked for comments and suggestions
on how to proceed.</p>
<p>Marcus Adair proposed, and Luke Palmer strongly seconded, moving the
development of the code onto a mediawiki (wikipedia) style Wiki which has good
support for 'offline' discussion of code as it's developed. Autrijus reckoned
that his current practise of handing out SVN committer bits to anyone who
expressed an interest and leaving discussion in the files themselves seems to
be working pretty well so far. He pointed at pugs.kwiki.org though.</p>
<p><a href='http://svn.openfoundry.org/pugs/examples/cookbook/' target='_blank'>svn.openfoundry.org</a></p>
<p><a href='http://groups.google.com/groups?threadm=20050410030004.16112.qmail@web60805.mail.yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='Collaborative Synopses'></a><h2>Collaborative Synopses</h2>
<p>Bryan Ingerson posted a preliminary cut of Synopsis 26 and asked for
comments. Yuval Kogman pointed out that the docs subdirectory of the pugs
distribution is filled with documentation that needed proofreading and
nitpicking. Go to it people.</p>
<p><a href='http://svn.openfoundry.org/pugs/docs/' target='_blank'>svn.openfoundry.org</a></p>
<p><a href='http://groups.google.com/groups?threadm=20050410104626.GA11509@ttul.org' target='_blank'>groups.google.com</a></p>
<a name='Aliasing swapped values'></a><h2>Aliasing swapped values</h2>
<p>Ovid wondered what</p>
<pre>    ($x,$y) := ($y, $x)</pre>
<p>would do.</p>
<p>Juerd reckoned the answer is straightforward, and I must say I agree with him.</p>
<p><a href='http://groups.google.com/groups?threadm=20050410174751.88219.qmail@web60805.mail.yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='String#chars in a list context'></a><h2>String#chars in a list context</h2>
<p>Marcus Adair argued that it seems natural that String#chars, when used in a
list context, should return a list of the Unicode chars in the string. Opinion
seemed to favour the idea, but there's been no ruling from Larry (or anyone
else on the Design Team).</p>
<p><a href='http://groups.google.com/groups?threadm=fb07797705041111035357ff89@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Whither use English'></a><h2>Whither <code>use English</code></h2>
<p>David Vergin wondered if Perl 6 would have an equivalent of <code>use English</code>,
which would give sensible names to the various magic globals (those that hadn't
been otherwise eliminated at least). Answer: Yes and No. There will be no
English.pm module, but the magic globals will all have English names by
default.</p>
<p><a href='http://groups.google.com/groups?threadm=200541194433.231936@GatewayM275' target='_blank'>groups.google.com</a></p>
<a name='Heredocs and their workings'></a><h2>Heredocs and their workings</h2>
<p>Marcus Adair wondered about the use of Heredocs as positional parameters. Luke
confirmed that they should work just like they do in Perl 5, modulo minor
matters of spelling (they're now spelled <code>qq::to/END/</code> etc...) and whitespace
removal.</p>
<p><a href='http://groups.google.com/groups?threadm=fb07797705041117364d084d8e@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Slicing conflict'></a><h2>Slicing conflict</h2>
<p>Luke pointed out that</p>
<pre>    my @a = (1,2,3,4);
    my @b = @a[1...];
    say +@b;</pre>
<p>is potentially problematic (he argues it should print out '3', but Perl 5
semantics imply that it should print 'Inf'). He proposed breaking with the Perl
5 way. Autrijus agreed with him and has implemented his proposal in pugs.</p>
<p><a href='http://groups.google.com/groups?threadm=20050412063042.GA29831@navi.cx' target='_blank'>groups.google.com</a></p>
<a name='Coo... that was fun, I think I'll do it again some time.'></a><h1>Coo... that was fun, I think I'll do it again some time.</h1>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Or, you can check out my website. Maybe now I'm back writing stuff I'll start
updating it.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
<p>Vaguely pretty photos by me can be found at:</p>
<p><a href='http://www.flickr.com/photos/pdcawley' target='_blank'>www.flickr.com</a></p>
<p>And that's quite enough shameless self-promotion. See you in two weeks.</p>
</div>
